#include "wrn1c1.h"
BLINK_tenFreq WRN_u8CheckLedEPBFail_LED14(void)
{
    BLINK_tenFreq enReturn = WRN__nenOff;
    bool isTimeout = SYN__boEPBErrorStsTimeoutFlg();
    uint8_t epbStatus = SYN__u8EPBFailStaus();

    // 静态变量：跟踪状态、闪烁周期、超时计数
    static int stateCounter = 0;
    static BLINK_tenFreq lastStatus = WRN__nenOff;
    static uint8_t timeoutCounter = 0;

    if (!isTimeout) {
        // 信号未超时：重置超时计数，按EPB状态控制灯
        timeoutCounter = 0;

        switch (epbStatus) {
        case 0: // Undefined
        case 1: // No Error
            enReturn = WRN__nenOff;
            break;
        case 2: // Error
            enReturn = WRN__nenOn;
            break;
        case 3: // Diagnosis（1Hz闪烁）
            stateCounter++;
            enReturn = (stateCounter % 2 == 0) ? WRN__nen1Hz : WRN__nenOff;
            break;
        default:
            enReturn = WRN__nenOff;
            break;
        }

        lastStatus = enReturn; // 更新“上一次有效状态”
    }
    else {
        // 信号超时（丢失）：计数并判断
        timeoutCounter++;

        if (timeoutCounter <= 10) {
            // 丢失≤10个周期：保持上一次有效状态
            enReturn = lastStatus;
        }
        else {
            // 丢失>10个周期：默认常亮（可根据电源等需求细化）
            enReturn = WRN__nenOn;
        }
    }

    // （可选）调试输出灯状态
    // Log_led_state("EPB_LED14", enReturn);

    return enReturn;
}